/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package Persistencia;

import java.io.Serializable;
import java.util.Date;
import javax.persistence.Basic;
import javax.persistence.Column;
import javax.persistence.EmbeddedId;
import javax.persistence.Entity;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import javax.xml.bind.annotation.XmlRootElement;

/**
 *
 * @author BATAQUERO
 */
@Entity
@Table(name = "resumen_sem_prac_prof")
@XmlRootElement
@NamedQueries({
    @NamedQuery(name = "ResumenSemPracProf.findAll", query = "SELECT r FROM ResumenSemPracProf r"),
    @NamedQuery(name = "ResumenSemPracProf.findByIdEstudiante", query = "SELECT r FROM ResumenSemPracProf r WHERE r.resumenSemPracProfPK.idEstudiante = :idEstudiante"),
    @NamedQuery(name = "ResumenSemPracProf.findByIdSupervisor", query = "SELECT r FROM ResumenSemPracProf r WHERE r.resumenSemPracProfPK.idSupervisor = :idSupervisor"),
    @NamedQuery(name = "ResumenSemPracProf.findByIdSupervisorEntidad", query = "SELECT r FROM ResumenSemPracProf r WHERE r.resumenSemPracProfPK.idSupervisorEntidad = :idSupervisorEntidad"),
    @NamedQuery(name = "ResumenSemPracProf.findByIdCoodinadorPracticas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.resumenSemPracProfPK.idCoodinadorPracticas = :idCoodinadorPracticas"),
    @NamedQuery(name = "ResumenSemPracProf.findByFecha", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fecha = :fecha"),
    @NamedQuery(name = "ResumenSemPracProf.findByFechaPrimeraVisita", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fechaPrimeraVisita = :fechaPrimeraVisita"),
    @NamedQuery(name = "ResumenSemPracProf.findByAreaTrabajo", query = "SELECT r FROM ResumenSemPracProf r WHERE r.areaTrabajo = :areaTrabajo"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosTratados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosTratados = :aspectosTratados"),
    @NamedQuery(name = "ResumenSemPracProf.findByAcuerdosRealizados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.acuerdosRealizados = :acuerdosRealizados"),
    @NamedQuery(name = "ResumenSemPracProf.findByProcesosEjecutados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.procesosEjecutados = :procesosEjecutados"),
    @NamedQuery(name = "ResumenSemPracProf.findByAnalisisCualitativoDesempeno", query = "SELECT r FROM ResumenSemPracProf r WHERE r.analisisCualitativoDesempeno = :analisisCualitativoDesempeno"),
    @NamedQuery(name = "ResumenSemPracProf.findByValoracionFundamenTeorica", query = "SELECT r FROM ResumenSemPracProf r WHERE r.valoracionFundamenTeorica = :valoracionFundamenTeorica"),
    @NamedQuery(name = "ResumenSemPracProf.findByFechaVisitaFinal", query = "SELECT r FROM ResumenSemPracProf r WHERE r.fechaVisitaFinal = :fechaVisitaFinal"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosTratadosVisFin", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosTratadosVisFin = :aspectosTratadosVisFin"),
    @NamedQuery(name = "ResumenSemPracProf.findByAnalisisActivProgEjec", query = "SELECT r FROM ResumenSemPracProf r WHERE r.analisisActivProgEjec = :analisisActivProgEjec"),
    @NamedQuery(name = "ResumenSemPracProf.findByAspectosHabMejorar", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aspectosHabMejorar = :aspectosHabMejorar"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorarioPracticaDe", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horarioPracticaDe = :horarioPracticaDe"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorarioPracticaHsata", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horarioPracticaHsata = :horarioPracticaHsata"),
    @NamedQuery(name = "ResumenSemPracProf.findBySemanasTrabajadas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.semanasTrabajadas = :semanasTrabajadas"),
    @NamedQuery(name = "ResumenSemPracProf.findByHorasRealesTrabajadas", query = "SELECT r FROM ResumenSemPracProf r WHERE r.horasRealesTrabajadas = :horasRealesTrabajadas"),
    @NamedQuery(name = "ResumenSemPracProf.findBySemanasDiasNoTrabajados", query = "SELECT r FROM ResumenSemPracProf r WHERE r.semanasDiasNoTrabajados = :semanasDiasNoTrabajados"),
    @NamedQuery(name = "ResumenSemPracProf.findByJustificacion", query = "SELECT r FROM ResumenSemPracProf r WHERE r.justificacion = :justificacion"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionEstudiante", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionEstudiante = :aceptacionEstudiante"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionSupervisorEnt", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionSupervisorEnt = :aceptacionSupervisorEnt"),
    @NamedQuery(name = "ResumenSemPracProf.findByAceptacionSupervisorUniv", query = "SELECT r FROM ResumenSemPracProf r WHERE r.aceptacionSupervisorUniv = :aceptacionSupervisorUniv"),
    @NamedQuery(name = "ResumenSemPracProf.findByEdicionFormato", query = "SELECT r FROM ResumenSemPracProf r WHERE r.edicionFormato = :edicionFormato")})
public class ResumenSemPracProf implements Serializable {

    private static final long serialVersionUID = 1L;
    @EmbeddedId
    protected ResumenSemPracProfPK resumenSemPracProfPK;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha")
    @Temporal(TemporalType.DATE)
    private Date fecha;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_primera_visita")
    @Temporal(TemporalType.DATE)
    private Date fechaPrimeraVisita;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 50)
    @Column(name = "area_trabajo")
    private String areaTrabajo;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "aspectos_tratados")
    private String aspectosTratados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 100)
    @Column(name = "acuerdos_realizados")
    private String acuerdosRealizados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "procesos_ejecutados")
    private String procesosEjecutados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "analisis_cualitativo_desempeno")
    private String analisisCualitativoDesempeno;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "valoracion_fundamen_teorica")
    private String valoracionFundamenTeorica;
    @Basic(optional = false)
    @NotNull
    @Column(name = "fecha_visita_final")
    @Temporal(TemporalType.DATE)
    private Date fechaVisitaFinal;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "aspectos_tratados_vis_fin")
    private String aspectosTratadosVisFin;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 500)
    @Column(name = "analisis_activ_prog_ejec")
    private String analisisActivProgEjec;
    @Size(max = 500)
    @Column(name = "aspectos_hab_mejorar")
    private String aspectosHabMejorar;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horario_practica_de")
    private String horarioPracticaDe;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horario_practica_hsata")
    private String horarioPracticaHsata;
    @Basic(optional = false)
    @NotNull
    @Column(name = "periodo_academico")
    private String periodoAcademico;
    @Basic(optional = false)
    @NotNull
    @Column(name = "semanas_trabajadas")
    private int semanasTrabajadas;
    @Basic(optional = false)
    @NotNull
    @Column(name = "horas_reales_trabajadas")
    private int horasRealesTrabajadas;
    @Basic(optional = false)
    @NotNull
    @Column(name = "semanas_dias_no_trabajados")
    private int semanasDiasNoTrabajados;
    @Basic(optional = false)
    @NotNull
    @Size(min = 1, max = 2)
    @Column(name = "justificacion")
    private String justificacion;
    @Size(max = 12)
    @Column(name = "aceptacion_estudiante")
    private String aceptacionEstudiante;
    @Size(max = 12)
    @Column(name = "aceptacion_supervisor_ent")
    private String aceptacionSupervisorEnt;
    @Size(max = 12)
    @Column(name = "aceptacion_supervisor_univ")
    private String aceptacionSupervisorUniv;
    @Basic(optional = false)
    @NotNull
    @Column(name = "edicion_formato")
    private boolean edicionFormato;
    @JoinColumn(name = "id_supervisor", referencedColumnName = "id_supervisor", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Supervisor supervisor;
    @JoinColumn(name = "id_estudiante", referencedColumnName = "id_estudiante", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private Estudiante estudiante;
    @JoinColumn(name = "id_coodinador_practicas", referencedColumnName = "id_coodinador_practicas", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private CoordinadorPracticas coordinadorPracticas;
    @JoinColumn(name = "id_supervisor_entidad", referencedColumnName = "id_supervisor_entidad", insertable = false, updatable = false)
    @ManyToOne(optional = false)
    private SupervisorEntidad supervisorEntidad;

    public ResumenSemPracProf() {
    }

    public ResumenSemPracProf(ResumenSemPracProfPK resumenSemPracProfPK) {
        this.resumenSemPracProfPK = resumenSemPracProfPK;
    }

    public ResumenSemPracProf(ResumenSemPracProfPK resumenSemPracProfPK, Date fecha, Date fechaPrimeraVisita, String areaTrabajo, String aspectosTratados, String acuerdosRealizados, String procesosEjecutados, String analisisCualitativoDesempeno, String valoracionFundamenTeorica, Date fechaVisitaFinal, String aspectosTratadosVisFin, String analisisActivProgEjec, String horarioPracticaDe, String horarioPracticaHsata, int semanasTrabajadas, int horasRealesTrabajadas, int semanasDiasNoTrabajados, String justificacion, boolean edicionFormato) {
        this.resumenSemPracProfPK = resumenSemPracProfPK;
        this.fecha = fecha;
        this.fechaPrimeraVisita = fechaPrimeraVisita;
        this.areaTrabajo = areaTrabajo;
        this.aspectosTratados = aspectosTratados;
        this.acuerdosRealizados = acuerdosRealizados;
        this.procesosEjecutados = procesosEjecutados;
        this.analisisCualitativoDesempeno = analisisCualitativoDesempeno;
        this.valoracionFundamenTeorica = valoracionFundamenTeorica;
        this.fechaVisitaFinal = fechaVisitaFinal;
        this.aspectosTratadosVisFin = aspectosTratadosVisFin;
        this.analisisActivProgEjec = analisisActivProgEjec;
        this.horarioPracticaDe = horarioPracticaDe;
        this.horarioPracticaHsata = horarioPracticaHsata;
        this.semanasTrabajadas = semanasTrabajadas;
        this.horasRealesTrabajadas = horasRealesTrabajadas;
        this.semanasDiasNoTrabajados = semanasDiasNoTrabajados;
        this.justificacion = justificacion;
        this.edicionFormato = edicionFormato;
    }

    public ResumenSemPracProf(int idEstudiante, int idSupervisor, int idSupervisorEntidad, int idCoodinadorPracticas) {
        this.resumenSemPracProfPK = new ResumenSemPracProfPK(idEstudiante, idSupervisor, idSupervisorEntidad, idCoodinadorPracticas);
    }

    public ResumenSemPracProfPK getResumenSemPracProfPK() {
        return resumenSemPracProfPK;
    }

    public void setResumenSemPracProfPK(ResumenSemPracProfPK resumenSemPracProfPK) {
        this.resumenSemPracProfPK = resumenSemPracProfPK;
    }

    public Date getFecha() {
        return fecha;
    }

    public void setFecha(Date fecha) {
        this.fecha = fecha;
    }

    public Date getFechaPrimeraVisita() {
        return fechaPrimeraVisita;
    }

    public void setFechaPrimeraVisita(Date fechaPrimeraVisita) {
        this.fechaPrimeraVisita = fechaPrimeraVisita;
    }

    public String getAreaTrabajo() {
        return areaTrabajo;
    }

    public void setAreaTrabajo(String areaTrabajo) {
        this.areaTrabajo = areaTrabajo;
    }

    public String getAspectosTratados() {
        return aspectosTratados;
    }

    public void setAspectosTratados(String aspectosTratados) {
        this.aspectosTratados = aspectosTratados;
    }

    public String getAcuerdosRealizados() {
        return acuerdosRealizados;
    }

    public void setAcuerdosRealizados(String acuerdosRealizados) {
        this.acuerdosRealizados = acuerdosRealizados;
    }

    public String getProcesosEjecutados() {
        return procesosEjecutados;
    }

    public void setProcesosEjecutados(String procesosEjecutados) {
        this.procesosEjecutados = procesosEjecutados;
    }

    public String getAnalisisCualitativoDesempeno() {
        return analisisCualitativoDesempeno;
    }

    public void setAnalisisCualitativoDesempeno(String analisisCualitativoDesempeno) {
        this.analisisCualitativoDesempeno = analisisCualitativoDesempeno;
    }

    public String getValoracionFundamenTeorica() {
        return valoracionFundamenTeorica;
    }

    public void setValoracionFundamenTeorica(String valoracionFundamenTeorica) {
        this.valoracionFundamenTeorica = valoracionFundamenTeorica;
    }

    public Date getFechaVisitaFinal() {
        return fechaVisitaFinal;
    }

    public void setFechaVisitaFinal(Date fechaVisitaFinal) {
        this.fechaVisitaFinal = fechaVisitaFinal;
    }

    public String getAspectosTratadosVisFin() {
        return aspectosTratadosVisFin;
    }

    public void setAspectosTratadosVisFin(String aspectosTratadosVisFin) {
        this.aspectosTratadosVisFin = aspectosTratadosVisFin;
    }

    public String getAnalisisActivProgEjec() {
        return analisisActivProgEjec;
    }

    public void setAnalisisActivProgEjec(String analisisActivProgEjec) {
        this.analisisActivProgEjec = analisisActivProgEjec;
    }

    public String getAspectosHabMejorar() {
        return aspectosHabMejorar;
    }

    public void setAspectosHabMejorar(String aspectosHabMejorar) {
        this.aspectosHabMejorar = aspectosHabMejorar;
    }

    public String getHorarioPracticaDe() {
        return horarioPracticaDe;
    }

    public void setHorarioPracticaDe(String horarioPracticaDe) {
        this.horarioPracticaDe = horarioPracticaDe;
    }

    public String getHorarioPracticaHsata() {
        return horarioPracticaHsata;
    }

    public void setHorarioPracticaHsata(String horarioPracticaHsata) {
        this.horarioPracticaHsata = horarioPracticaHsata;
    }

    public int getSemanasTrabajadas() {
        return semanasTrabajadas;
    }

    public void setSemanasTrabajadas(int semanasTrabajadas) {
        this.semanasTrabajadas = semanasTrabajadas;
    }

    public int getHorasRealesTrabajadas() {
        return horasRealesTrabajadas;
    }

    public void setHorasRealesTrabajadas(int horasRealesTrabajadas) {
        this.horasRealesTrabajadas = horasRealesTrabajadas;
    }

    public int getSemanasDiasNoTrabajados() {
        return semanasDiasNoTrabajados;
    }

    public void setSemanasDiasNoTrabajados(int semanasDiasNoTrabajados) {
        this.semanasDiasNoTrabajados = semanasDiasNoTrabajados;
    }

    public String getJustificacion() {
        return justificacion;
    }

    public void setJustificacion(String justificacion) {
        this.justificacion = justificacion;
    }

    public String getAceptacionEstudiante() {
        return aceptacionEstudiante;
    }

    public void setAceptacionEstudiante(String aceptacionEstudiante) {
        this.aceptacionEstudiante = aceptacionEstudiante;
    }

    public String getAceptacionSupervisorEnt() {
        return aceptacionSupervisorEnt;
    }

    public void setAceptacionSupervisorEnt(String aceptacionSupervisorEnt) {
        this.aceptacionSupervisorEnt = aceptacionSupervisorEnt;
    }

    public String getAceptacionSupervisorUniv() {
        return aceptacionSupervisorUniv;
    }

    public void setAceptacionSupervisorUniv(String aceptacionSupervisorUniv) {
        this.aceptacionSupervisorUniv = aceptacionSupervisorUniv;
    }

    public boolean getEdicionFormato() {
        return edicionFormato;
    }

    public void setEdicionFormato(boolean edicionFormato) {
        this.edicionFormato = edicionFormato;
    }

    public Supervisor getSupervisor() {
        return supervisor;
    }

    public void setSupervisor(Supervisor supervisor) {
        this.supervisor = supervisor;
    }

    public Estudiante getEstudiante() {
        return estudiante;
    }

    public void setEstudiante(Estudiante estudiante) {
        this.estudiante = estudiante;
    }

    public CoordinadorPracticas getCoordinadorPracticas() {
        return coordinadorPracticas;
    }

    public void setCoordinadorPracticas(CoordinadorPracticas coordinadorPracticas) {
        this.coordinadorPracticas = coordinadorPracticas;
    }

    public SupervisorEntidad getSupervisorEntidad() {
        return supervisorEntidad;
    }

    public void setSupervisorEntidad(SupervisorEntidad supervisorEntidad) {
        this.supervisorEntidad = supervisorEntidad;
    }

    public String getPeriodoAcademico() {
        return periodoAcademico;
    }

    public void setPeriodoAcademico(String periodoAcademico) {
        this.periodoAcademico = periodoAcademico;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (resumenSemPracProfPK != null ? resumenSemPracProfPK.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof ResumenSemPracProf)) {
            return false;
        }
        ResumenSemPracProf other = (ResumenSemPracProf) object;
        if ((this.resumenSemPracProfPK == null && other.resumenSemPracProfPK != null) || (this.resumenSemPracProfPK != null && !this.resumenSemPracProfPK.equals(other.resumenSemPracProfPK))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "Persistencia.ResumenSemPracProf[ resumenSemPracProfPK=" + resumenSemPracProfPK + " ]";
    }
}
